package com.nextel.project.devolucion.bean;

import com.nextel.project.pedido.bean.*; 
import pe.com.nextel.rms.DataInputStreamX;
import pe.com.nextel.rms.DataOutputStreamX;
import pe.com.nextel.rms.PersistenteX;
import java.io.IOException;
import org.kxml2.io.KXmlParser;
import org.kxml2.io.KXmlSerializer;
import pe.com.nextel.util.ArrayList;
import pe.com.nextel.util.Iterator;
import pe.com.nextel.util.List;
import pe.com.nextel.util.StringUtils;
import pe.com.nextel.util.math.MathUtil;

/**
 *
 * @author eespinoza
 */
public class DevolucionDetalleBean extends PersistenteX {

    private String codigoArticulo;
    private String nombreArticulo;
    private String cantidad;
    private String codigoMotivo;
    private String fecVencimiento;
    private String nombreMotivo;
    private String Observaciones;
    

    public DevolucionDetalleBean() {
    }

    public void persistir(DataOutputStreamX dataOutput, List list) throws IOException {
        dataOutput.writeInt(list.size());
        
        for (Iterator it = list.iterator(); it.hasNext();) {
            DevolucionDetalleBean bean = (DevolucionDetalleBean) it.next();
            bean.persistirItem(dataOutput);
        }
    }

    public void persistirItem(DataOutputStreamX dataOutput) throws IOException {

        dataOutput.writeString(StringUtils.stringNullToBlank(codigoArticulo));
        dataOutput.writeString(StringUtils.stringNullToBlank(cantidad));        
        dataOutput.writeString(StringUtils.stringNullToBlank(codigoMotivo));        
        dataOutput.writeString(StringUtils.stringNullToBlank(fecVencimiento));
        dataOutput.writeString(StringUtils.stringNullToBlank(getObservaciones()));
    }

    public List recuperar(DataInputStreamX dataInput) throws IOException {

        List lista = new ArrayList();
        DevolucionDetalleBean bean = null;
        
        int cant = dataInput.readInt();
 
        for (int i = 0; i < cant; i++) {
            bean = new DevolucionDetalleBean();
            bean.recuperarItem(dataInput);
            lista.add(bean);
        }

        return lista;
    }

    public void recuperarItem(DataInputStreamX dataInput) throws IOException {

        codigoArticulo = dataInput.readString();
        cantidad = dataInput.readString();
        codigoMotivo = dataInput.readString();
        fecVencimiento = dataInput.readString();
        setObservaciones(dataInput.readString());
 
    }

    public String getCantidad() {
        return cantidad;
    }

    public void setCantidad(String cantidad) {
        this.cantidad = cantidad;
    }

    public void writeXMLObject(KXmlSerializer writer) throws IOException {
//        System.out.println("DevolucionDetalle.writeXMLObject");

        writer.startTag(null,"d");

        writer.attribute(null,"ca",StringUtils.stringNullToBlank(getCodigoArticulo()));
        writer.attribute(null,"c",StringUtils.stringNullToBlank(getCantidad()));
        writer.attribute(null,"cm",StringUtils.stringNullToBlank(getCodigoMotivo()));
        writer.attribute(null,"fv",StringUtils.stringNullToBlank(getFecVencimiento()));
        writer.attribute(null,"o",StringUtils.stringNullToBlank(getObservaciones()));

        writer.endTag(null, "d");

    }

    public void readXMLObject(KXmlParser parser) throws IOException {
    }

    public String getCodigoArticulo() {
        return codigoArticulo;
    }

    public void setCodigoArticulo(String particulo) {
        this.codigoArticulo = particulo;
    }

    public void clear() {
    }

    /**
     * @return the nombreArticulo
     */
    public String getNombreArticulo() {
        return nombreArticulo;
    }

    /**
     * @param nombreArticulo the nombreArticulo to set
     */
    public void setNombreArticulo(String nombreArticulo) {
        this.nombreArticulo = nombreArticulo;
    }

    public String getCodigoMotivo() {
        return codigoMotivo;
    }

    public void setCodigoMotivo(String codigoMotivo) {
        this.codigoMotivo = codigoMotivo;
    }

    public String getFecVencimiento() {
        return fecVencimiento;
    }

    public void setFecVencimiento(String fecVencimiento) {
        this.fecVencimiento = fecVencimiento;
    }

    public String getNombreMotivo() {
        return nombreMotivo;
    }

    public void setNombreMotivo(String nombreMotivo) {
        this.nombreMotivo = nombreMotivo;
    }

    public String getObservaciones() {
        return Observaciones;
    }

    public void setObservaciones(String Observaciones) {
        this.Observaciones = Observaciones;
    }

}
